﻿using System;

namespace SeoulOpenApi.MobumFood
{
    public class MobumFoodService : REST_BaseService
    {
         /// <summary>
		/// 서울시 API 서비스
		/// </summary>
		public MobumFoodService() : this(null, null) { } 

        /// <summary>
		/// 서울시 API 서비스
		/// </summary>
		/// <param name="userId">서울시 API접속 ID</param>
		/// <param name="authKey">서울시로부터 발급받은 인증키</param>
		/// <remarks>인증키 발급: http://mobile.openapi.seoul.go.kr/ </remarks>
        public MobumFoodService(string userId, string authKey)
		{
			base.UserID = userId;
			base.AuthKey = authKey;
		}

        /// <summary>
        /// 서비스 항목에 따라 데이터 가져오기
        /// </summary>
        /// <param name="name">서비스명</param>
        /// <returns></returns>
        protected override REST_Data getREST_Data(string name)
        {
            REST_Data rest = new REST_Data();
            switch (name)
            {
                case "ListFsiMbFoodInfo":
                    rest.Name = "ListFsiMbFoodInfo";
                    rest.Description = "모범음식점 정보조회";
                    rest.Address = ApiUrlPrefix + "ListFsiMbFoodInfo.do?" +
                        "uk="+ base.AuthKey + //변수 : 인증키[필수]
                        "&uid="+base.UserID + //변수 : 회원아이디[필수]
                        "&frnum={0}" + //변수 : 총건수중 시작건수 [필수]
                        "&tonum={1}" + //변수 : 총건수중 종료건수 [필수]
                        "&aname={2}" + //변수 : 음식명 [선택]
                        "&sname={3}" + //변수 : 음식점명 [선택]
                        "&m_idx={4}";  //변수 : 음식점ID(MB_CODE)                        
                    break;

                case "ListFsiMbFoodInfoCnt":
                    rest.Name = "ListFsiMbFoodInfoCnt";
                    rest.Description = "모범음식점 총 건수 조회";
                    rest.Address = ApiUrlPrefix + "ListFsiMbFoodInfoCnt.do?" +
                        "uk="+base.AuthKey + //변수 : 인증키[필수]
                        "&uid="+base.UserID + //변수 : 회원아이디[필수]
                        "&aname={0}" + //변수 : 음식명 [선택]
                        "&sname={1}" + //변수 : 음식점명 [선택]
                        "&c_idx={2}"; //변수 : 음식점ID(MB_CODE)
                    break;                
            }

            // 해당 서비스가 없는 경우
            if (String.IsNullOrEmpty(rest.Name))
                throw new Exception(name + " not found.");
            
            return rest;
        }
    }
}
